package br.com.foxinline.manager.pesquisar;

import br.com.foxinline.modelo.Protocolo;
import br.com.foxinline.modelo.Tramite;
import br.com.foxinline.servico.TramiteServico;
import br.com.foxinline.utilitario.Caracteres;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author cadomeireles
 */
@ManagedBean
@ViewScoped
public class ManagerPesquisarTramite implements Serializable {
    
    @EJB
    TramiteServico tramiteServico;
    
    private Tramite tramiteVisualizar;
    private Tramite tramite;
    private List<Tramite> tramites;
    
    String visualizarId;
    
    @PostConstruct
    public void init() {
        instanciar();
        delegar();
    }

    private void instanciar() {
        this.tramite = new Tramite();
        this.tramite.setProtocolo(new Protocolo());
        this.tramites = new ArrayList<Tramite>();
    }

    private void delegar() {
        Map<String, String> parametros = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
        this.visualizarId = parametros.get("tramiteId");

        if (visualizarId != null) {
            this.tramiteVisualizar = tramiteServico.pesquisar(Long.parseLong(visualizarId));
        }         
    }

    public void pesquisar() {
        this.tramites = tramiteServico.pesquisar(this.tramite);
    }

    public void limpar() {
        instanciar();
    }    

    public String adicionarMascaraCNPJ(String string) {
        return  Caracteres.adicionarMascara(string, Caracteres.cnpjMask);
    }

    public String adicionarMascaraCPF(String string) {
        return  Caracteres.adicionarMascara(string, Caracteres.cpfMask);
    }    
    
    public Tramite getTramite() {
        return tramite;
    }

    public void setTramite(Tramite tramite) {
        this.tramite = tramite;
    }

    public List<Tramite> getTramites() {
        return tramites;
    }

    public void setTramites(List<Tramite> tramites) {
        this.tramites = tramites;
    }

    public Tramite getTramiteVisualizar() {
        return tramiteVisualizar;
    }

    public void setTramiteVisualizar(Tramite tramiteVisualizar) {
        this.tramiteVisualizar = tramiteVisualizar;
    }
    
}
